{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pylab as plt\n",
    "import copy\n",
    "\n",
    "import sys\n",
    "sys.path.append('../')\n",
    "\n",
    "from angler import Simulation, Optimization\n",
    "from angler.structures import three_port, two_port\n",
    "from angler.plot import *\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "lambda0 = 2e-6              # free space wavelength (m)\n",
    "c0 = 3e8                    # speed of light in vacuum (m/s)\n",
    "omega = 2*np.pi*c0/lambda0  # angular frequency (2pi/s)\n",
    "dl = 0.04                   # grid size (L0)\n",
    "NPML = [25, 25]             # number of pml grid points on x and y borders\n",
    "pol = 'Ez'                  # polarization (either 'Hz' or 'Ez')\n",
    "source_amp = 2              # amplitude of modal source (A/L0^2?)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# material constants\n",
    "n_index = 2.44              # refractive index\n",
    "eps_m = n_index**2          # relative permittivity\n",
    "chi3 = 4.1*1e-19            # Al2S3 from Boyd (m^2/V^2)\n",
    "# max_ind_shift = 5.8e-3      # maximum allowed nonlinear refractive index shift (computed from damage threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# geometric parameters\n",
    "L = 10         # length of box (L0)\n",
    "H = 2        # height of box (L0)\n",
    "w = .3        # width of waveguides (L0)\n",
    "d = H/2.44    # distance between waveguides (L0)\n",
    "l = 4         # length of waveguide from PML to box (L0)\n",
    "spc = 1.5       # space between box and PML (L0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Computed a domain with 500 grids in x and 175 grids in y\n",
      "The simulation has 50 grids per free space wavelength\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# define permittivity of three port system\n",
    "eps_r, design_region = two_port(L, H, w, l, spc, dl, NPML, eps_m)\n",
    "(Nx, Ny) = eps_r.shape\n",
    "nx, ny = int(Nx/2), int(Ny/2)            # halfway grid points\n",
    "\n",
    "simulation = Simulation(omega,eps_r,dl,NPML,pol)\n",
    "# compute the grid size the total grid size\n",
    "print(\"Computed a domain with {} grids in x and {} grids in y\".format(Nx,Ny))\n",
    "print(\"The simulation has {} grids per free space wavelength\".format(int(lambda0/dl/simulation.L0)))\n",
    "simulation.plt_eps()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the modal source and probes\n",
    "simulation = Simulation(omega, eps_r, dl, NPML, 'Ez')\n",
    "simulation.add_mode(np.sqrt(eps_m), 'x', [NPML[0]+int(l/2/dl), ny], int(Ny/3), scale=source_amp)\n",
    "simulation.setup_modes()\n",
    "\n",
    "# top modal profile\n",
    "out = Simulation(omega, eps_r, dl, NPML, 'Ez')\n",
    "out.add_mode(np.sqrt(eps_m), 'x', [-NPML[0]-int(l/2/dl), ny], int(Ny/3))\n",
    "out.setup_modes()\n",
    "J_out = np.abs(out.src)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbgAAAEoCAYAAAAqrOTwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFvFJREFUeJzt3X2MHHd9x/HPd3bvcmc7JokNTXCcOLRGFUVUoCgFoUpBVUUSRaRSqQh/QEFFSIioIIEQ8EcRqP+USlRCAVKrRIRCAUERuFKkFKlIwB8EnCgQbBdkJaFxcBJ8fox9vr2Z+faPmT1vLvewDzOze999v6JV9mF25rd76/3s7ze/B3N3AQAQTTLuAgAAUAcCDgAQEgEHAAiJgAMAhETAAQBCIuAAACERcACAkAg4AEBIBBwAIKT2uAsAAKjHW996iy8snK1sf4888puH3P22ynZYMwIOAIJaWDirh3/2r5Xtr916y+7KdtYAAg4AonJJeT7uUowNAQcAYTkBBwAIioADAITjkqZ4STQCDgDCookSABAVAQcACIdelACAmGiiBABERA0OABCTy3x6A47JlgEAIVGDA4DIaKIEAITjknIGegMAwqEXJQAgInpRAgDCmuJelAQcAIRFEyUAICI6mQAAYqIGBwCIioADAITjkhFwAIB4nBW9AQBBUYMDAITDQG8AQEzOMAEAQEDU4AAAYU1xwLHgKQAgJAIOAMIqhwlUddmEme01sx+a2REzO2xmH1pjm1vN7KyZPVZe/qGWly6aKAEgrubPwaWSPuLuj5rZlZIeMbMfuPuRVdv92N3vrLswBBwARNZgL0p3PyHpRHn9vJkdlbRH0uqAawQBBwBhjW+yZTPbJ+n1kh5e4+E3mdkvJP1O0kfd/XAdZSDgACCq6psod5vZoZ7bB9z9wOqNzGyHpP+U9GF3P7fq4Ucl3ejuL5jZHZK+J2l/lYXsIuAAILJqmyhPuvvNG21gZjMqwu3r7v7d1Y/3Bp67P2hmXzSz3e5+ssqCSgQcAATmkjfXRGlmJunLko66++fW2eZaSc+5u5vZLSp68y/UUR4CDgCian5F7zdLepekx83ssfK+T0q6QZLc/T5Jb5f0ATNLJS1Kutu9niUPCDgAiKzBTibu/hNJtsk290q6t4nyEHAAEFXzNbiJQsABQFjjGyYwCQg4AIiMGhwAIBxXo70oJw0BBwBhseApACCqKQ44lssBAIREDQ4Aomp+uZyJQsABQGRT3ERJwAFAVE4nEwBAVDRRAgBCqmce4y2BgAOAqJiLEgAQE+fgAABRcQ4OABAOTZQAgLAIOABAOIyDAwBE5QQcACAkxsEBAMKhkwkAICwCDgAQzpR3MmHBUwBASNTgACCyKa7BEXAAEBjDBAAA8dCLEgAQFgEHAAhnyntREnAAEBkzmQAAonFJPr3LwRFwABAWnUwAAGERcACAiGiiBADEQxMlACAsanAAgHDcmaqrX2Y2ve8UANTvpLu/vNI9UoMbRKv6UgAAJGW/rXyXU1wtYT04AEAlzGyvmf3QzI6Y2WEz+9Aa25iZfd7MjpnZL83sDXWVh3NwABCVN75cTirpI+7+qJldKekRM/uBux/p2eZ2SfvLy59J+lL5/8pRgwOAyPIKL5tw9xPu/mh5/byko5L2rNrsLklf9cJPJV1lZteN9BrXQQ0OAAIb10BvM9sn6fWSHl710B5JT/fcPl7ed6LqMhBwABCVq+pelLvN7FDP7QPufmD1Rma2Q9J/Svqwu5+rtAQDIOAAIKgaVhM46e43b7SBmc2oCLevu/t319jkGUl7e25fX95XOc7BAUBU3RpcQ+fgzMwkfVnSUXf/3DqbHZT07rI35RslnXX3ypsnJWpwABBaw+udvlnSuyQ9bmaPlfd9UtINRVn8PkkPSrpD0jFJFyW9t67CEHAAEFiTnUzc/SeSbJNtXNIHmygPAQcAUVXfyWRLIeAAIDDWgwMAhNTwObiJQsABQFQuKd/wlFhoBBwABFXDOLgthYADgLBM7tTgAADRODU4AEBQ0xxwTNUFAAiJGhwABOUS5+AAAAG55AwTAABExEBvAEBINFECAEKiiRIAEI47TZQAgJCYyQQAEFROEyUAIByaKAEAETHQGwAQFgEHAAgpJ+AAAOG4MQ4OABBPcQ5u3KUYnykNuLV+0UzxpwBAWDRRhtfPH7h3G8IOALa6KQm4QZkIOQAR0IsypFH/qN3nE3QAtiYXTZRjNOgbP+lhM87XM+qHuKn3dpByTvrfG5hwTg2uRlW/seP4Q9V5zEn64E1SWbomsUzAKJr/0ZY3fsTJUVPA8cUEAOPHagIVWuuNTKo9BABsSbmaPrfPObhaDB5q1metzyv4YKw+Vh37XE8VxxqEyRo/JoC1JBpHgyE1uEp038Sk557q39jN9tn7Zd7v8dfbbph9DXusOo3jmAAuu/xd0nzI5VP8+7aigLscbiaTbJhmyWGe89IPSn9f5Wsda5h9VVPmakxSWTazXlmn+XQ4IjNJ8rwMum7I1Z88Ti/KqqwOt8G+cG2IUBx2jrW1jjXMvposc9XlkMYzR93GZU3kTsghKJNsJeSak09xC05FAdcNt3b5BVZ8iQ37xdvLeoLSV/3Ctw3+br1flGuVo7vf7j5797XZc4cp6+X99b272k1SWbomsUzAqIrvlFyuXKa8/HHZXC1uWlXayaQbbmbJ5S/7CkJuZf+b1Qo3C6YNgq73+euG2pBhB2CKeS6zpPzRm5aBkzVzaBm9KEdjK7W3xGYlS5RYW1YG3abPrigAB2naWruJcrTnD2qYpriq3isAzej+O3cvam953lGuVPJU3tC5OJooR2VlmJXh1kpmZWqt3TRY05d0v4Gx3vFHfX4Vhm0aBTCZuv+mc18uQs7KJkpLJG+oFkcT5bBMRZNkUXubbV2pJGmr3ZpXYm0lK+fiWqOXdAC+zgenn3Ks9dymyw8ghu73SeoduWdaTi8qzRO5p+XjUp3NlU0P9Daz+yXdKel5d3/tGo/fKun7kp4s7/quu3+mrvJUUoMza8usrVZrVq3kCs0m25XYjBJLZBosHAY9d7VeZ45BjlHFPjYzzDEG0U956i4DgJdyZUryJeW+rLyVypUpy9tl7a7+Wpw320T5FUn3SvrqBtv82N3vbKIwIwdccQYuUSuZVTuZ10wyr7nkZUVTpWYkScmAIVeFfNUHp98yDPs8AFgtVyZXrjRZUqpLyjyVe365j4JbqHmG3P1HZrZv3OXoGiHgiuZJWVvt1jbNtq/UzplX6grt0MvyXZr1Gc2orWTAXw/DzLox6LiSUafqaqKM/ZqksvSrt8zjLgtQp6JriWtRl9SxSzoz85wWk9NKs0WlmZRZXp6Lq+nfgVc+k8luMzvUc/uAux8YcB9vMrNfSPqdpI+6++Hqivdio9fgLFEruULt1ry262ptz3fqGl2ptiW6ImnJTAOHHABEkHkZcNmMlnxey9aRJ7kuJM8rzS8Vwwdq/I1Xwzm4k+5+8wjPf1TSje7+gpndIel7kvZXU7SXGingzFoya2t+5mrtbO/RDX69rpqd1XXbWpprSXOtsp5Xvr9NxNxmn5X1yjDs8wBgte73SebF5fzyrC4su+YuzmjBd+rizEnlvqxO2dmkPtb0ObgNufu5nusPmtkXzWy3u5+s43gjBFx3UHdbs60d2u5XadfsrHbPtbRnm2u+Je1o5UpMahnNUACmS+5S5qZlN51ZNp1fNl1IZ+VLV+qZ1g4ttc5rObuo4ru0vs4mkzTZspldK+k5d3czu0XFi1+o63hDB5zJZNbWTGubXq6btM+u0827E+2d7+hPrjmj7XMd7di5JGu5ktZw73CVQ8H6HVc9jmPWcWwA49H77z7rJEo7iRbObNepxXldNbtDT72wTc+eu0lpe0lptqgsPVfWsupJoiZrcGb2DUm3qjhXd1zSp6Sit6G73yfp7ZI+YGappEVJd7vX10g7UMDt2rVL99xzz7qPn5HrjNp6XLtHLhgAxOO6Sq6/0l5Je1/0yFNP/VYPPPCVio/WbA3O3d+5yeP3qhhG0DczyyT9s6RPdMPQzB519zds9tyBAm5hYUGf/vQ/lgedVau1QzvmXqlbZ+/Ua6+e1Xv2P6tXvvqc5m5/lfwVu+TXXSvNzUmtlpRMWPUkL39mTVq5AGx9eV5U5S4uyhYXZb95Qv7U7/Xk902P/f4afe1J6X/9CT27fERnL/xG7suqqwYXYC7KwyqaMv/bzN7h7qfUZ7eI0TqZlIOLE5laJrVbmZIrTJqfKy7bt8tnZ6WZ2VEOAwBbT96dZFmy+Tlprq12q6OZxJUoaWyM7QSdghtW6u4fM7N3SPqxmb1bfb6skQKuOzNGLlfmUpq1lC+5tHipuFy4IMsyqdOZvJoSNTgAdVlVg9PiJelSqjRraTm3cnxcA7OYeIgaXLFerPu3zOywpP+QdEM/Txw+4Lz4A6bZok5lizpxsa2jC1fr0uG2/rD1hNq7nlbyB9ukdiLNVLoqDwBMvtylpWX54rI6T17UxWfbOrqwR09cmNWp7Kwu2hml2eLgvdEGLUate2/E+7pX3P1XZvbnku7q54mVdjI5pBkd0jWSrpGWJR0fZO8AENTO8vJqScr1Fl0p6ZbyUqijk4kk+RatwZnZx9z9s+7+iJn9jbt/W5Lc/ayZ/XE/+xi6k4nUktmMWq1tesWO12qXbtTrZm/Q7rmW9m5nHByA6bbWOLhj5zKdXFrS4/Yzne+c0GJnQWl6VnWNg3Nt6Rrc3ZI+W17/hKRv9zx2m6RPbraDEdoOyyXYPVUne0EX2me00LlWmc8qse5MJq2VmUy25m8IABjcS2cykS4suxY6HZ3SeXWyF5Rmi+WyOTU3UW7d+oWtc32t22sarZOJZ3JPtbh8Wrly/V97hxY6O3W6w1yUAHB5LspUS0r1fPKcXtCCFpdPazm7uLIuXH0ma6quAfk619e6vaaRe3+458ryYkT+hfZppcmylKtYTSDbeDWBQWfCH3Xm+c2OV/f+qz4egMm2ejWBCzqtS/lZZfmS5PnKit91aXqgd8X+1MzOqaitzZfXVd6e62cHIwRc2brrqdLsoiTpXPI7zSTzupScG/t6cAAwbivrwXmxHtzi8hktZxeUZheVe0fyVHWPVNuqNTh3Hzk4Rq/ByYsRHXlHab64MjYusRm1bKbv/fS7Qvaoq1Kvd5y69lv1cQBsLa5Mabmid5ovKsuXinqd57Ti1KySAWruqVyJsqyzUuVOrK1Eicwms/bWDSQCB0Bd3Ivekal35J4pyzrK8k4jnUu6tnAT5chGDLiimdI9VS5pObsgyxNl+ZJMrWJJdmnl/3Xptx27n3L0s6+6Xw+AGLrfJ7kvl/0VOsq9CLgi/Go+B1f9it5bSjVTjHh5KrWsyVmeSEobCbhBTtJuVo5BT/gSdAA20v1O8d7vyHIWqMbKsEXPwVWhgoArzsKZp+VJ00RuadEE2HQAbPShWVWWdZsoB9gHAGyqG3I9AecrQ7Drr15Rg6uIey6zolrsyvvueNGInuAyJS8Ktr7PwzX4qwtAHEVNLl/5f2PHbfRok6eigMuLpsmyiVLd2lEfvxwGbeYbddxId/mKOvY7iLrHvwCYNHl5Oqe52pu0deeirEKFNbhuyOUDzcs1+GLlowXD+sera7/1HA/AFjOGYQHU4CrhKlKtCDl5NsCsHtW9/as/PGuXof/j9be/wfcLYLq8+LukudqbxDm4ilwOOSkZ6ZdKN0hG/bWz3vPXCqp+jjVMeap6LQAiaP6H8DR/89S0EmkRcsMaLgxWf3DWP/5g+1/rA9n/ayPYABTGE24BVvQeWsUB163FSeNvsqvz+ON+bQC2puZ/8E7zT+waanC9IQcAGBtmMqlDP+9ovyE47F+nqpBt4vhT/AkEUBt6UY5N3V/q3f0PG3Sjlo/QAjB+gw9himOMAdeUQYNuij8NAIIx5VN8ymgKAq5rs6Aj2AAgkikKuC6CDMD0oIkSABAOnUwAAGExTAAAENIU5xsBBwBRFVN1jbsU40PAAUBUTicTAEBQdDIBAIRDEyUAIKwpzjcCDgAiowYHAAjHJTlzUQIAIprmGlwy7gIAAOqTe3WXzZjZ/Wb2vJn9ap3Hzcw+b2bHzOyXZvaGql9vLwIOAILyii99+Iqk2zZ4/HZJ+8vL+yV9aZDXMyiaKAEgqj5rXpUdzv1HZrZvg03ukvRVd3dJPzWzq8zsOnc/UUd5CDgACMyrHSiw28wO9dw+4O4HBnj+HklP99w+Xt5HwAEAxuqku9887kL0i4ADgKAmcCaTZyTt7bl9fXlfLehkAgCBNdzJZDMHJb277E35Rkln6zr/JlGDA4DQmqzBmdk3JN2q4lzdcUmfkjQjSe5+n6QHJd0h6Ziki5LeW2d5CDgACKzJ5XLc/Z2bPO6SPthQcQg4AIjKxXI5AICgJqyTSaMIOACIihW9AQAR0UQJAAiLGhwAICRqcACAcFwun+IqHAEHAIHRixIAENIU5xsBBwBRTeBky40i4AAgqoYXPJ00rCYAAAiJGhwABFbxit5bCgEHAEFxDm4wJ6Xst7WUBABwY9U7nOJhcIMFnLu/vK6CAACql9NECQCIiBocACAcVhMAAITFXJQAgHimfKA3AQcAQRVNlNObcAQcAAQ2xS2UBBwAROVyanAAgJiowQEAQqIGBwAIp5iLkoADAATEagIAgJCmeSYTFjwFAIREDQ4AgmKgNwAgKGcuSgBATNTgAADh0EQJAAjLp7gfJQEHAGExFyUAICCaKAEAYeU0UQIA4nG5TW/AMZMJAATVbaKs6tIPM7vNzH5tZsfM7ONrPP4eM/u9mT1WXt5X9evuogYHAIE12URpZi1JX5D0l5KOS/q5mR109yOrNv2Wu99Td3kIOAAIy5seJnCLpGPu/oQkmdk3Jd0laXXANYImSgAIyiXllld26cMeSU/33D5e3rfaX5vZL83sO2a2t4KXuiYCDgACyyv8T9JuMzvUc3n/EEX6L0n73P11kn4g6YEqX28vmigBICyv+hzcSXe/eYPHn5HUWyO7vrzvconcF3pu/pukz1ZXvBejBgcAqMrPJe03s5vMbFbS3ZIO9m5gZtf13HybpKN1FYYaHAAE5Wp2Lkp3T83sHkkPSWpJut/dD5vZZyQdcveDkv7ezN4mKZV0StJ76iqPTfNaQQAQ2Xx7l79q5x2V7e/I6a89skkT5UShBgcAgbGaAAAgHJf3270/JAIOAALLlY27CGNDwAFAWI3PZDJRCDgACMol5U4NDgAQDjU4AEBQzjk4AEA8lU/VtaUQcAAQVNMzmUwaAg4AwnI5nUwAABHRRAkACMjpZAIAiMcluVODAwCEM929KFnwFAAQEjU4AIjKRS9KAEBETNUFAAiITiYAgKAYJgAACIoaHAAgJAIOABCOT/k4OAIOAAKjBgcAiMdZTQAAEBTj4AAAATlNlACAeBjoDQAIiyZKAEBANFECAIKa5oBjPTgAQEjU4AAgLJc4BwcACMenu4mSgAOAoFz0ogQAhEQvSgBAWMxFCQAIhxocACAsAg4AEI5LU1yDY6A3AATmFf7XDzO7zcx+bWbHzOzjazx+hZl9q3z8YTPbV/FLXkHAAUBoeYWXjZlZS9IXJN0u6TWS3mlmr1m12d9JOu3ufyTpXyT900gvbwMEHABE5l7dZXO3SDrm7k+4e0fSNyXdtWqbuyQ9UF7/jqS/MDOr7PX2IOAAIKwqGyj7Crg9kp7uuX28vG/Nbdw9lXRW0q4KXuxL0MkEAOJ6SEp3V7i/OTM71HP7gLsfqHD/lSLgACAod7+t4UM+I2lvz+3ry/vW2ua4mbUlvUzSQh2FoYkSAFCVn0vab2Y3mdmspLslHVy1zUFJf1tef7uk/3Hv7wTfoKjBAQAq4e6pmd0j6SFJLUn3u/thM/uMpEPuflDSlyX9u5kdk3RKRQjWwmoKTgAAxoomSgBASAQcACAkAg4AEBIBBwAIiYADAIREwAEAQiLgAAAhEXAAgJD+H2K1JTbUVJH1AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# set source and solve for electromagnetic fields\n",
    "(_, _, Ez) = simulation.solve_fields()\n",
    "simulation.plt_abs(outline=True, cbar=True);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "computed a scale of 18.829316815634154 in units of E^2 J_out\n"
     ]
    }
   ],
   "source": [
    "# compute straight line simulation\n",
    "eps_r_wg, _ = two_port(L, H, w, l, spc, dl, NPML, eps_start=eps_m)\n",
    "(Nx_wg, Ny_wg) = eps_r_wg.shape\n",
    "nx_wg, ny_wg = int(Nx_wg/2), int(Ny_wg/2)            # halfway grid points     \n",
    "simulation_wg = Simulation(omega, eps_r_wg, dl, NPML, 'Ez')\n",
    "simulation_wg.add_mode(np.sqrt(eps_m), 'x', [NPML[0]+int(l/2/dl), ny_wg], int(Ny/3), scale=source_amp)\n",
    "simulation_wg.setup_modes()\n",
    "\n",
    "# compute normalization\n",
    "sim_out = Simulation(omega, eps_r_wg, dl, NPML, 'Ez')\n",
    "sim_out.add_mode(np.sqrt(eps_m), 'x', [-NPML[0]-int(l/2/dl), ny], int(Ny/3))\n",
    "sim_out.setup_modes()\n",
    "J_out = np.abs(sim_out.src)\n",
    "(_, _, Ez_wg) = simulation_wg.solve_fields()\n",
    "SCALE = np.sum(np.square(np.abs(Ez_wg))*J_out)\n",
    "J_out = J_out/SCALE\n",
    "print('computed a scale of {} in units of E^2 J_out'.format(SCALE))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# changes design region. 'style' can be in {'full', 'empty', 'halfway', 'random'}\n",
    "simulation.init_design_region(design_region, eps_m, style='halfway')\n",
    "simulation.plt_eps()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# add nonlinearity\n",
    "nl_region = copy.deepcopy(design_region)\n",
    "\n",
    "simulation.nonlinearity = []  # This is needed in case you re-run this cell, for example (or you can re-initialize simulation every time)\n",
    "simulation.add_nl(chi3, nl_region, eps_scale=True, eps_max=eps_m)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# define objective function\n",
    "from angler.objective import Objective, obj_arg\n",
    "arg1 = obj_arg('ez', component='Ez', nl=False)\n",
    "arg2 = obj_arg('ez_nl', component='Ez', nl=True)\n",
    "\n",
    "import autograd.numpy as npa\n",
    "def J(e, e_nl):\n",
    "    linear_out =     1*npa.sum(npa.square(npa.abs(e))*J_out)\n",
    "    nonlinear_out = -1*npa.sum(npa.square(npa.abs(e_nl))*J_out)\n",
    "    return linear_out + nonlinear_out\n",
    "\n",
    "objective = Objective(J, arg_list=[arg1, arg2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 99% (443 of 445) |##################### | Elapsed Time: 0:00:19 ETA:   0:00:00"
     ]
    }
   ],
   "source": [
    "# make optimization object and check derivatives\n",
    "R = 2   # filter radius of curvature (pixels)  (takes a while to set up as R > 5 - 10)\n",
    "beta = 100\n",
    "eta= 0.5\n",
    "optimization = Optimization(objective=objective, simulation=simulation, design_region=design_region, eps_m=eps_m, R=R, beta=beta, eta=eta)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "adjoint gradient   = [-9.176333510131467e-07, 1.9436948752657446e-06, 1.8352414097727587e-06, 1.298481503306248e-06, 3.3245886977423256e-07]\n",
      "numerical gradient = [-9.189249361440943e-07, 1.943361027656465e-06, 1.834836726999356e-06, 1.2988032871419364e-06, 3.3172908864287365e-07]\n"
     ]
    }
   ],
   "source": [
    "# check the derivatives (note, full derivatives are checked, linear and nonlinear no longer separate)\n",
    "(grad_avm, grad_num) = optimization.check_deriv(Npts=5, d_rho=1e-4)\n",
    "print('adjoint gradient   = {}\\nnumerical gradient = {}'.format(grad_avm, grad_num))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " ObjectiveFn:  3e-06 Iteration:  1/2 ETA:   0:00:29                            "
     ]
    }
   ],
   "source": [
    "new_eps = optimization.run(method='lbfgs', Nsteps=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x360 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, (ax1, ax2) = plt.subplots(1, 2, figsize=(16,5))\n",
    "simulation.plt_eps(ax=ax1, outline=False)\n",
    "ax1.set_title('final permittivity distribution')\n",
    "optimization.plt_objs(ax=ax2)\n",
    "ax2.set_yscale('linear')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# compare the linear and nonlinear fields\n",
    "\n",
    "# setup subplots\n",
    "f, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(20,5))\n",
    "\n",
    "# linear fields\n",
    "(Hx,Hy,Ez) = simulation.solve_fields()\n",
    "simulation.plt_abs(ax=ax1, vmax=None)\n",
    "ax1.set_title('linear field')\n",
    "\n",
    "# nonlinear fields\n",
    "(Hx_nl,Hy_nl,Ez_nl,_) = simulation.solve_fields_nl()\n",
    "simulation.plt_abs(ax=ax2, vmax=None, nl=True)\n",
    "ax2.set_title('nonlinear field')\n",
    "\n",
    "# difference\n",
    "simulation.plt_diff(ax=ax3)\n",
    "ax3.set_title('|Ez| for linear - nonlinear')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "maximum refractive index shift of 1.3043858437811195e-06\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# compute the refractive index shift\n",
    "index_shift = simulation.compute_index_shift()\n",
    "print('maximum refractive index shift of {}'.format(np.max(index_shift)))\n",
    "plt.imshow(index_shift.T, cmap='magma', origin='lower')\n",
    "plt.colorbar()\n",
    "plt.title('refractive index shift')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "linear transmission              = 0.5738\n",
      "nonlinear transmission           = 0.5738\n",
      "\n",
      "relative power difference        = 0.00 %\n",
      "relative transmission difference = 0.00 %\n"
     ]
    }
   ],
   "source": [
    "# compute powers\n",
    "\n",
    "# input power\n",
    "W_in = simulation.W_in\n",
    "\n",
    "# linear powers\n",
    "(Hx,Hy,Ez) = simulation.solve_fields()\n",
    "W_out_lin = simulation.flux_probe('x', [-NPML[0]-int(l/2/dl), ny], int(Ny/2))\n",
    "W_in_lin = simulation.flux_probe('x', [NPML[0]+int(2*l/3/dl), ny], int(Ny/2))\n",
    "\n",
    "T_lin = W_out_lin/W_in\n",
    "\n",
    "# nonlinear powers\n",
    "(Hx_nl,Hy_nl,Ez_nl,_) = simulation.solve_fields_nl()\n",
    "W_out_nl = simulation.flux_probe('x', [-NPML[0]-int(l/2/dl), ny], int(Ny/2), nl=True)\n",
    "W_in_nl = simulation.flux_probe('x', [NPML[0]+int(2*l/3/dl), ny], int(Ny/2), nl=True)\n",
    "\n",
    "T_nl = W_out_nl/W_in\n",
    "\n",
    "print('linear transmission              = {:.4f}'.format(T_lin))\n",
    "print('nonlinear transmission           = {:.4f}\\n'.format(T_nl))\n",
    "print('relative power difference        = {:.2f} %'.format(100*abs(W_out_lin-W_out_nl)/W_out_lin))\n",
    "print('relative transmission difference = {:.2f} %'.format(100*abs(T_lin-T_nl)/T_lin))\n"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
